package apl;

import static org.junit.Assert.assertEquals;

import org.junit.Test;

import sec.RuimteManager;

public class ToegangsTest {

	private RuimteManager manager = new RuimteManager();

	@Test
	public void testAddRuimtes() {
		manager.addRuimte("Buiten");
		manager.addRuimte("Hal");
		manager.addRuimte("Kantoor");
		
		assertEquals("ruimtes: Buiten[] Hal[] Kantoor[] ", manager.toString());
	}

	@Test
	public void testAddDoorgangen() {
		testAddRuimtes();
		manager.addDoorgang("Buiten", "Hal", "Buitendeur", 0);
		manager.addDoorgang("Buiten", "Kantoor", "Achterdeur", 2);
		manager.addDoorgang("Hal", "Kantoor", "Binnendeur", 1);

		assertEquals("ruimtes: Buiten[] Hal[] Kantoor[] doorgangen: Buiten=0=Hal Buiten=2=Kantoor Hal=1=Kantoor ",
				manager.toString());
	}

	@Test
	public void testAddDrager() {
		manager.addDrager("Test Drager");
		assertEquals("[Test Drager 0 null]", manager.getDragers().toString());
	}

	@Test
	public void addIdentificator() {
		testAddDrager();
		manager.addIdentificator("Test Drager", "101101");
		assertEquals("[Test Drager 0 101101]", manager.getDragers().toString());
	}

	@Test
	public void setAutorisatie() {
		addIdentificator();
		manager.setAutorisatie("Test Drager", 1);
		assertEquals("[Test Drager 1 101101]", manager.getDragers().toString());
	}

	@Test
	public void testBeweegTussenRuimtes() {
		testAddDoorgangen();
		setAutorisatie();
		manager.setDragerInRuimte("Test Drager", "Buiten");
		manager.beweegDoorDoorgang("Test Drager", "Buitendeur");
		assertEquals(
				"ruimtes: Buiten[] Hal[Test Drager 1 101101] Kantoor[] doorgangen: Buiten=0=Hal Buiten=2=Kantoor Hal=1=Kantoor ",
				manager.toString());
	}

	@Test
	public void testBeweegTussenRuimtesFout() {
		testAddDoorgangen();
		setAutorisatie();
		manager.setDragerInRuimte("Test Drager", "Buiten");
		manager.beweegDoorDoorgang("Test Drager", "Achterdeur");
		assertEquals(
				"ruimtes: Buiten[Test Drager 1 101101] Hal[] Kantoor[] doorgangen: Buiten=0=Hal Buiten=2=Kantoor Hal=1=Kantoor ",
				manager.toString());
	}

	@Test 
	public void testToonAanwezige(){
		testBeweegTussenRuimtes();
		assertEquals("[Test Drager 1 101101]",manager.getAanwezigen("Hal").toString());
	}
	
}
